package com.example.springdemo.mongodb;


import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.annotation.*;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;
import java.io.Serializable;
import java.util.Date;

/**
 * 用户mongo插入表的实体类
 * 类名就是他要插入的稽核名
 * 每个成员变量就是集合的字段
 * 每一行称作文档
 * @author zhangding
 * @date 2021年12月16日21:45:46
 */
@Data
// 声明这是一个mongo文档
@Document
public class TestUser implements Serializable {
    /**
     * 主键ID注解，想要自定义主键的话用这个注解，
     * 不过一般不建议使用，mongo的主键效率更高
     */
    @Id
    private String id;
    /**
     * Field注解用来重命名该字段的名称，如果不用该注解，则默认使用成员变量的名称
     */
    @Field
    private String name;
    @Field
    private String gender;
    @Field
    private int age;
    @CreatedBy
    @Field
    private String createBy;
    /**
     * 此注解会直接在库中插入时间，但要在启动类上加上注解@EnableMongoAuditing
     */
    @CreatedDate
    @Field
    Date createdDate;
    @LastModifiedBy
    @Field
    String lastModifiedBy;
    @LastModifiedDate
    @Field
    Date lastModifiedDate;

}
